package com.cruise.game.service.admin;

import com.cruise.game.model.param.admin.GameCategoryCreateParam;
import com.cruise.game.model.param.admin.GameCategoryUpdateParam;
import com.cruise.game.model.vo.admin.GameCategoryVO;
import com.cruise.game.model.vo.common.PageResult;

/**
 * 管理员游戏分类服务接口
 *
 * @author cruise
 * @date 2025-02-28
 */
public interface AdminCategoryService {

    /**
     * 获取游戏分类列表
     *
     * @param status 状态
     * @param page 页码
     * @param pageSize 每页条数
     * @return 分页结果
     */
    PageResult<GameCategoryVO> getCategoryList(String status, Integer page, Integer pageSize);

    /**
     * 获取游戏分类详情
     *
     * @param id 游戏分类ID
     * @return 游戏分类详情
     */
    GameCategoryVO getCategoryDetail(Long id);

    /**
     * 创建游戏分类
     *
     * @param param 创建参数
     * @return 游戏分类ID
     */
    Long createCategory(GameCategoryCreateParam param);

    /**
     * 更新游戏分类
     *
     * @param id 游戏分类ID
     * @param param 更新参数
     * @return 是否成功
     */
    boolean updateCategory(Long id, GameCategoryUpdateParam param);

    /**
     * 删除游戏分类
     *
     * @param id 游戏分类ID
     * @return 是否成功
     */
    boolean deleteCategory(Long id);

    /**
     * 更新游戏分类状态
     *
     * @param id 游戏分类ID
     * @param status 状态
     * @return 是否成功
     */
    boolean updateCategoryStatus(Long id, String status);
}